package com.ceair.flight.refund.location.dao;


import com.ceair.flight.refund.dto.appmoblie.RefundApplyDto;
import com.ceair.flight.refund.dto.appmoblie.RefundAuditDto;
import com.ceair.flight.refund.dto.external.BasePageQueryReq;
import com.ceair.flight.refund.dto.external.RefundApply;
import com.ceair.flight.refund.location.model.RefundApplyDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IRefundApplyDao {
    /**
     * 保存退票申请实体
     * @param refundApplyDO
     * @return
     */
    int saveRefundApplyDo(RefundApplyDO refundApplyDO);

    List<RefundAuditDto> getRefundAudit4Apply(long applyId);

    RefundApplyDto getRefundApplyDto(long applyId);

    RefundApplyDO getRefundApplyById(@Param(value = "applyId") Long applyId);

    int updateRefundStatus(RefundApplyDO refundApply);

    int updateRefundStatusAndUpdatDate(RefundApplyDO refundApply);

    int updateRefundApplyStatusAndUpdatDate(RefundApply refundApply);
    /**
     * 更新退票申请信息
     *
     * @param refundApply
     * @return
     */
//    int updateRefundApplyByApplyId(RefundApplyDO refundApply);

    int updateByApplyId(RefundApplyDO refundApply);

    int changePhone(RefundApplyDO refundApplyDO);

//    List<RefundApplyDto> loadApplyAndTktByPage(BasePageQueryReq pageQueryReq);

//    public List<RefundApplyDO> getRefundApplyList(RefundApplyDto refundApplyDto);

    int updateRefundApply(RefundApplyDto refundApply);

//    int updateRefundAudit(RefundAuditDto refundAuditDto);

    List<RefundApplyDto> getRefundDtoApplyList(RefundApplyDto refundApplyDto);

//    int updateRefundApplyStatus(Map<String, Object> params);

    int insertRefundAudit(RefundAuditDto refundAuditDto);

    List<RefundApplyDto> loadFirstAutoAuditByPage(BasePageQueryReq pageQueryReq);
}
